Maven একটি শক্তিশালী বিল্ড অটোমেশন টুল যা Java প্রোগ্রামিং ভাষার জন্য ব্যবহৃত হয়। এটি প্রকল্পের build lifecycle পরিচালনা করতে সাহায্য করে, যার মাধ্যমে কোড কম্পাইল, টেস্ট, প্যাকেজিং এবং ডিপ্লয়মেন্ট সম্পন্ন হয়। Maven Build Lifecycle হল একটি সিরিজ স্টেপ (phases) যা নির্দিষ্ট কাজ সম্পন্ন করতে ব্যবহৃত হয়, এবং প্রতিটি স্টেপে প্লাগইন দ্বারা বিভিন্ন কাজ সম্পাদিত হয়।
Maven Build Lifecycle এর ধারণা
Maven এ তিনটি প্রধান বিল্ড লাইফসাইকেল থাকে:
- Default Lifecycle: এটি মূল বিল্ড লাইফসাইকেল, যা প্রকল্পের বিল্ড, টেস্টিং, প্যাকেজিং এবং ডিপ্লয়মেন্ট পরিচালনা করে।
- Clean Lifecycle: এটি আগের বিল্ড থেকে অতিরিক্ত ফাইলগুলো পরিষ্কার করে, যেমন পুরনো কম্পাইলড ক্লাস ফাইল এবং জার ফাইল।
- Site Lifecycle: এটি ডকুমেন্টেশন এবং ওয়েবসাইট সম্পর্কিত কাজ সম্পাদন করে।
Maven Build Lifecycle এর প্রধান স্টেপস
Maven এর Default Lifecycle তে মোট ২৩টি স্টেপ থাকে, কিন্তু এই স্টেপগুলোর মধ্যে কিছু গুরুত্বপূর্ণ স্টেপ নিচে দেওয়া হলো:
1. validate
- এই স্টেপটি নিশ্চিত করে যে প্রকল্পের পম (POM) ফাইল সঠিকভাবে কনফিগার করা আছে এবং সমস্ত ডিপেনডেন্সি এবং প্লাগইন সঠিকভাবে সেটআপ করা আছে।
2. compile
- এই স্টেপে সোর্স কোড কম্পাইল করা হয়। এটি src/main/java ফোল্ডার থেকে সমস্ত .java ফাইল কম্পাইল করে।
3. test
- unit tests চালানোর জন্য এই স্টেপটি ব্যবহৃত হয়। এটি JUnit টেস্টগুলি চালিয়ে অ্যাপ্লিকেশনের কার্যকারিতা নিশ্চিত করে।
4. package
- এই স্টেপে কোড প্যাকেজ করা হয়, যেমন জার ফাইল বা ওয়েব অ্যাপ্লিকেশন (WAR) ফাইল তৈরি করা হয়।
5. install
- এই স্টেপে প্যাকেজ ফাইলটি আপনার লোকাল রিপোজিটরিতে ইনস্টল করা হয়, যাতে এটি ভবিষ্যতে ব্যবহার করা যায় বা অন্যান্য প্রকল্পে রেফারেন্স হিসেবে ব্যবহার করা যেতে পারে।
6. deploy
- এই স্টেপে প্যাকেজ ফাইলটি রিমোট রিপোজিটরিতে ডিপ্লয় করা হয়, যেখানে এটি টিম বা প্রকল্পের অন্যান্য অংশ দ্বারা ব্যবহার করা যেতে পারে।
Maven Build Lifecycle Example
ধরা যাক, আমাদের একটি সিম্পল Java Maven Project আছে, এবং আমরা এটিকে কম্পাইল, টেস্ট, প্যাকেজ এবং ডিপ্লয় করতে চাই। Maven-এর বিল্ড লাইফসাইকেল স্টেপগুলোর মাধ্যমে এটি সম্ভব।
pom.xml এর মাধ্যমে Maven প্রজেক্ট কনফিগারেশন করা হয়, যা প্রজেক্টের ডিপেনডেন্সি, প্লাগইন এবং অন্যান্য কনফিগারেশন ধারণ করে।
1. pom.xml উদাহরণ:
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>my-app</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<dependencies>
<!-- Add your project dependencies here -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>5.3.8</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
2. Maven Build Command Example:
Maven Build Lifecycle স্টেপগুলোর সাথে কাজ করার জন্য আমরা সাধারণত কমান্ড লাইনে Maven কমান্ড ব্যবহার করি।
Validate:
mvn validateCompile:
mvn compileTest:
mvn testPackage:
mvn packageInstall:
mvn installDeploy:
mvn deploy
এখানে, mvn install এবং mvn deploy দুটি গুরুত্বপূর্ণ কমান্ড যা আপনার প্রজেক্টের প্যাকেজ ইনস্টল এবং ডিপ্লয় করার জন্য ব্যবহৃত হয়।
Maven Build Lifecycle-এর বিভিন্ন স্টেপে বিস্তারিত
1. Validate (স্টেপ 1):
এই স্টেপে পম (POM) ফাইলের কনফিগারেশন এবং ডিপেনডেন্সি যাচাই করা হয়।
validateস্টেপে pom.xml ফাইলটি সঠিক কিনা এবং সমস্ত ডিপেনডেন্সি ঠিকভাবে কনফিগার হয়েছে কিনা তা যাচাই করা হয়।
2. Compile (স্টেপ 2):
এই স্টেপে Java কোড কম্পাইল হয় এবং .class ফাইল তৈরি করা হয়।
- Maven কম্পাইল করার জন্য
mvn compileকমান্ড ব্যবহার করা হয়। এটিsrc/main/javaডিরেক্টরি থেকে সমস্ত.javaফাইল কম্পাইল করে।
3. Test (স্টেপ 3):
JUnit বা অন্য কোনো টেস্ট ফ্রেমওয়ার্ক ব্যবহার করে সমস্ত টেস্ট চালানো হয়।
- Maven টেস্টিং এর জন্য
mvn testকমান্ড ব্যবহার করা হয়। টেস্ট সফলভাবে সম্পন্ন হলে তবেই পরবর্তী স্টেপ (package) সম্পন্ন হবে।
4. Package (স্টেপ 4):
এই স্টেপে .jar, .war, .ear ফাইল তৈরি করা হয়, যা ডিপ্লয় করার জন্য প্রস্তুত থাকে।
mvn packageকমান্ড দ্বারা target/ ডিরেক্টরিতে একটি প্যাকেজ ফাইল তৈরি হয়।
5. Install (স্টেপ 5):
এই স্টেপে প্যাকেজটি লোকাল মাভেন রিপোজিটরিতে ইনস্টল করা হয়।
mvn installকমান্ড দিয়ে আপনি আপনার প্যাকেজটি লোকাল রিপোজিটরিতে ইনস্টল করতে পারেন, যাতে এটি অন্যান্য প্রকল্পে ব্যবহৃত হতে পারে।
6. Deploy (স্টেপ 6):
ডিপ্লয়মেন্ট স্টেপে প্যাকেজটি রিমোট রিপোজিটরিতে আপলোড করা হয়।
mvn deployকমান্ড ব্যবহার করে আপনি আপনার প্যাকেজটি রিমোট রিপোজিটরিতে ডিপ্লয় করতে পারেন, যেখানে এটি অন্য ডেভেলপারদের ব্যবহারের জন্য পাওয়া যাবে।
উপসংহার
Maven Build Lifecycle ব্যবহার করে আপনি একটি Java প্রকল্পের বিল্ড প্রক্রিয়া সম্পন্ন করতে পারেন। Maven স্বয়ংক্রিয়ভাবে আপনার প্রজেক্টের বিভিন্ন স্টেপে কাজ করে, যেমন কোড কম্পাইল, টেস্ট, প্যাকেজিং, ইনস্টল এবং ডিপ্লয়মেন্ট। এর মাধ্যমে আপনার ডেভেলপমেন্ট প্রক্রিয়া সহজ এবং দ্রুততর হয়। Maven-এর POM.xml ফাইল এবং বিল্ড লাইফসাইকেল ব্যবস্থাপনা প্রকল্পের ডিপেনডেন্সি এবং বিল্ড কাজগুলো স্বয়ংক্রিয়ভাবে পরিচালনা করতে সহায়তা করে।
Read more